/*
 * Manager.h
 *
 *  Created on: 2011/06/04
 *      Author: naoki
 */

#ifndef INCLUDED_NTENGINE_THREADING_MANAGER_H
#define INCLUDED_NTENGINE_THREADING_MANAGER_H

namespace NTEngine {

/**
 * @brief Threadingモジュール
 */
namespace Threading {

/**
 * @brief スレッドマネージャ
 */
class Manager {
public:
	Manager();

	/**
	 * @brief インスタンスを取得します
	 */
	static Manager instance();

	/**
	 * @brief CPUのコア数を取得します
	 */
	int getCoreNumber() const;

	/**
	 * @brief 生成します。
	 * @param addThreadNumber 追加のスレッドをしてします。
	 */
	static void create( int addThreadNumber );

	/**
	 * @brief 破棄します。
	 */
	static void destroy();

};

} // namespace Threading
} // namespace NTEngine

#endif // INCLUDED_NTENGINE_THREADING_MANAGER_H
